package errs

// ErrProcNotDef 流程没有定义
type ErrProcNotDef struct {
	err error
}

func NewErrProcNotDef(err error) *ErrProcNotDef {
	return &ErrProcNotDef{
		err: err,
	}
}

func (m *ErrProcNotDef) Error() string {
	return m.err.Error()
}

func (m *ErrProcNotDef) Cause() error {
	return m.err
}

// ErrInvalidProcDef 流程定义配置不合法
type ErrInvalidProcDef struct {
	err error
}

func NewErrInvalidProcDef(err error) *ErrInvalidProcDef {
	return &ErrInvalidProcDef{
		err: err,
	}
}

func (m *ErrInvalidProcDef) Error() string {
	return m.err.Error()
}

func (m *ErrInvalidProcDef) Cause() error {
	return m.err
}

// ErrInvalidForm 无效的表单：表单中缺少流程定义中的条件字段
type ErrInvalidForm struct {
	err error
}

func NewErrInvalidForm(err error) *ErrInvalidForm {
	return &ErrInvalidForm{
		err: err,
	}
}

func (m *ErrInvalidForm) Error() string {
	return m.err.Error()
}

func (m *ErrInvalidForm) Cause() error {
	return m.err
}

// ErrCanNotGetUserByRole 无法获取到角色对应的用户
type ErrCanNotGetUserByRole struct {
	err error
}

func NewErrCanNotGetUserByRole(err error) *ErrCanNotGetUserByRole {
	return &ErrCanNotGetUserByRole{
		err: err,
	}
}

func (m *ErrCanNotGetUserByRole) Error() string {
	return m.err.Error()
}

func (m *ErrCanNotGetUserByRole) Cause() error {
	return m.err
}

// ErrCanNotGetLeader 无法获取用户的主管
type ErrCanNotGetLeader struct {
	err error
}

func NewErrCanNotGetLeader(err error) *ErrCanNotGetLeader {
	return &ErrCanNotGetLeader{
		err: err,
	}
}

func (m *ErrCanNotGetLeader) Error() string {
	return m.err.Error()
}

func (m *ErrCanNotGetLeader) Cause() error {
	return m.err
}

// ErrJsonMarshal json序列化错误
type ErrJsonMarshal struct {
	err error
}

func NewErrJsonMarshal(err error) *ErrJsonMarshal {
	return &ErrJsonMarshal{
		err: err,
	}
}

func (m *ErrJsonMarshal) Error() string {
	return m.err.Error()
}

func (m *ErrJsonMarshal) Cause() error {
	return m.err
}

// ErrDB 数据库方面的异常
type ErrDB struct {
	err error
}

func NewErrDB(err error) *ErrDB {
	return &ErrDB{
		err: err,
	}
}

func (m *ErrDB) Error() string {
	return m.err.Error()
}

func (m *ErrDB) Cause() error {
	return m.err
}

// ErrNotFind 找不到对应资源
type ErrNotFind struct {
	err error
}

func NewErrNotFind(err error) *ErrNotFind {
	return &ErrNotFind{
		err: err,
	}
}

func (m *ErrNotFind) Error() string {
	return m.err.Error()
}

func (m *ErrNotFind) Cause() error {
	return m.err
}
